home *** CD-ROM | disk | FTP | other *** search
/ Apple II Magazines (DO) / Softdisk Magazette Volume 1, No. 11 (1982-07)(Softdisk)(Side B).zip / Softdisk Magazette Volume 1, No. 11 (1982-07)(Softdisk)(Side B).do / PRO.IV.bas < prev    next >
BASIC Source File  |  1996-12-24  |  6KB  |  181 lines

  1. 10  GOSUB 1000: REM  INITIALIZE
  2. 20  GOSUB 9000: REM INTRO
  3. 30  GOSUB 2000: REM  STUFF
  4. 40  GOSUB 3000: REM  THROW UP BALL
  5. 50  POKE 54,189: POKE 55,158
  6. 60  TEXT : HOME 
  7. 70  VTAB 11: HTAB 12: INVERSE 
  8. 80  PRINT "PLEASE WAIT": NORMAL 
  9. 90  PRINT  CHR$(4);"RUN PRO.V"
  10. 1000  REM <CTRL-J><CTRL-J>INITIALIZE<CTRL-J>
  11. 1010  HIMEM: 16384
  12. 1020  IF  PEEK(768) = 173  THEN 1060
  13. 1030  PRINT  CHR$(4);"BLOAD HIRES CHAR"
  14. 1040  PRINT  CHR$(4);"BLOAD CHAR TABLE"
  15. 1050  GOSUB 8000
  16. 1060 VT = 1:SOUND = 0:CENTER = 0:WIDTH = 40
  17. 1070 G =  -9.8
  18. 1080  HOME 
  19. 1090  RETURN 
  20. 2000  REM <CTRL-J><CTRL-J>STUFF<CTRL-J>
  21. 2010  HGR2 
  22. 2020 A$ = "@PROJECTILE MOTION IS SIMILAR TO FREEFALL MOTION, EXCEPT THAT IT INCLUDES A HORIZONTAL COMPONENT IN ADDITION TO A VERTICAL ONE.": GOSUB 10000
  23. 2030 VT = VT +1
  24. 2040 A$ = "@IF THE MOTION TAKES PLACE IN A FRICTIONLESS ENVIRONMENT, THE HORIZONTAL MOTION IS FOUND USING THE VERY SIMPLE FORMULA:": GOSUB 10000
  25. 2050 CENTER = 1
  26. 2060 A$ = "S = VT": GOSUB 10000
  27. 2070 CENTER = 0
  28. 2080 A$ = "@THIS IS, OF COURSE, THE SAME FORMULA AS:": GOSUB 10000
  29. 2090 CENTER = 1
  30. 2100 A$ = "@DISTANCE = @RATE X @TIME": GOSUB 10000
  31. 2110 CENTER = 0
  32. 2120  GOSUB 15000
  33. 2130 A$ = "@FIRST, LET'S JUST EXAMINE THE VERTICAL COMPONENT OF THE MOTION.  @TO DO THIS, IMAGINE THROWING A BALL UP IN THE AIR.": GOSUB 10000
  34. 2140 VT = VT +1
  35. 2150 A$ = "@TO COMPUTE THE HEIGHT OF THE BALL, WE CAN JUST USE THE FORMULA:": GOSUB 10000
  36. 2160 VT = VT +1:CENTER = 1
  37. 2170 A$ = "S = 1/2 G T  + V T": GOSUB 10000
  38. 2180 VT = VT -3
  39. 2190 A$ = "           2      ": GOSUB 10000
  40. 2200 A$ = "                O ": GOSUB 10000
  41. 2210 CENTER = 0
  42. 2220 VT = VT +1
  43. 2230 A$ = "AND TO COMPUTE THE VELOCITY OF THE BALL, WE CAN USE THE FORMULA:": GOSUB 10000
  44. 2240 CENTER = 1
  45. 2250 A$ = "V = GT + V ": GOSUB 10000
  46. 2260 VT = VT -1
  47. 2270 A$ = "          O": GOSUB 10000
  48. 2280 CENTER = 0
  49. 2290  GOSUB 15000
  50. 2300 A$ = "@NOW LET'S SEE WHAT WILL HAPPEN WHEN WE THROW A BALL UP WITH AN INITIAL VELOCITY OF 30 METERS/SECOND": GOSUB 10000
  51. 2310  GOSUB 15000
  52. 2320  RETURN 
  53. 3000  REM <CTRL-J><CTRL-J>THROW UP BALL<CTRL-J>
  54. 3010 T = 0
  55. 3020  POKE 54,0: POKE 55,96
  56. 3030  VTAB 3: HTAB 15: PRINT "TIME:"
  57. 3040  VTAB 5: HTAB 15: PRINT "HEIGHT:  "
  58. 3050  VTAB 7: HTAB 15: PRINT "VELOC.:  "
  59. 3060 V0 = 30
  60. 3070 T = T +.2
  61. 3080 S = 1/2 *G *T *T +V0 *T
  62. 3090  HCOLOR= 0
  63. 3100  HPLOT 20,191 -Y1
  64. 3110  IF S <0  THEN 3220
  65. 3120  HCOLOR= 3
  66. 3130  HPLOT 20,191 -(S *2)
  67. 3140 Y1 = S *2
  68. 3150 T =  INT(T *10 +.5)/10
  69. 3160 S =  INT(S *10 +.5)/10
  70. 3170 V =  INT((G *T +V0) *10 +.5)/10
  71. 3180  VTAB 3: HTAB 24: PRINT T: CALL  -868
  72. 3190  VTAB 5: HTAB 24: PRINT S: CALL  -868
  73. 3200  VTAB 7: HTAB 24: PRINT V: CALL  -868
  74. 3210  GOTO 3070
  75. 3220  RETURN 
  76. 8000  REM <CTRL-J><CTRL-J>MUSICAL POKES
  77. 8010  POKE 768,173: POKE 769,48: POKE 770,192: POKE 771,136: POKE 772,208: POKE 773,4: POKE 774,198: POKE 775,7
  78. 8020  POKE 776,240: POKE 777,8: POKE 778,202: POKE 779,208: POKE 780,246: POKE 781,166: POKE 782,6: POKE 783,76: POKE 784,0: POKE 785,03: POKE 786,96
  79. 8030  RETURN 
  80. 9000  REM <CTRL-J><CTRL-J>INTRODUCTION<CTRL-J>
  81. 9010  HOME 
  82. 9020 WRD$ = "PROJECTILE"
  83. 9030  FOR T = 1 TO 10
  84. 9040 X1 = 1:Y1 = 10
  85. 9050 L$ =  MID$ (WRD$,T,1)
  86. 9060 TT = T +14
  87. 9070 A = (TT -1)/ -22
  88. 9080 B = TT -A
  89. 9090  FOR Y = 23 TO 1  STEP  -1
  90. 9100  POKE 6,Y: POKE 7,2: CALL 768
  91. 9110 X = Y *A +B
  92. 9120  IF X <1  THEN X = 1
  93. 9130  VTAB Y: HTAB X
  94. 9140  PRINT L$
  95. 9150  VTAB Y1: HTAB X1
  96. 9160  PRINT " "
  97. 9170 X1 = X:Y1 = Y
  98. 9180  NEXT Y
  99. 9190  VTAB 1: HTAB 15
  100. 9200  PRINT  LEFT$(WRD$,T)
  101. 9210  NEXT T
  102. 9220  FOR T = 34 TO 17  STEP  -1
  103. 9230  VTAB 2: HTAB T
  104. 9240  PRINT "MOTION "
  105. 9250  FOR J = 1 TO 50: NEXT 
  106. 9260  POKE 6,T: POKE 7,2: CALL 768
  107. 9270  NEXT 
  108. 9280 A$ = "WRITTEN BY":S = 5: GOSUB 9500
  109. 9290 A$ = "LARRY  SELTZER":S = 7: GOSUB 9500
  110. 9300  FOR J = 1 TO 1000: NEXT J
  111. 9310  RETURN 
  112. 9500  REM <CTRL-J><CTRL-J>WORDS AT BEGINNING<CTRL-J>
  113. 9510 L =  LEN(A$)
  114. 9520 HT = (40 -L)/2
  115. 9530  FOR X = 23 TO 0  STEP  -1
  116. 9540 X1 = X +5: IF X1 >24  THEN 9570
  117. 9550  IF X1 <S  THEN 9610
  118. 9560  VTAB X1: PRINT "                                       ";
  119. 9570  IF X <S  THEN 9590
  120. 9580  VTAB X: HTAB HT: PRINT A$
  121. 9590  POKE 6,X *2 +30: POKE 7,2: CALL 768
  122. 9600  NEXT X
  123. 9610  RETURN 
  124. 10000  REM <CTRL-J><CTRL-J>LOWER CASE PRINTER<CTRL-J>
  125. 10010  POKE 54,0: POKE 55,96
  126. 10020 L =  LEN(A$)
  127. 10030  VTAB VT
  128. 10040  IF CENTER = 0  THEN 10120
  129. 10050 I = 0
  130. 10060  FOR K = 1 TO L
  131. 10070 I = I +1
  132. 10080  IF  MID$ (A$,K,1) = "&"  OR  MID$ (A$,K,1) = "@"  THEN I = I -1
  133. 10090  NEXT K
  134. 10100  HTAB (40 -I)/2
  135. 10110  GOTO 10130
  136. 10120  HTAB 1
  137. 10130 SPACES = 0
  138. 10140  FOR CURRENT = 1 TO L
  139. 10150  FOR K = CURRENT TO L
  140. 10160  IF  MID$ (A$,K,1) < >" "  THEN  NEXT K
  141. 10170 WRD$ =  MID$ (A$,CURRENT,K -CURRENT)
  142. 10180 CURRENT = K
  143. 10190 LW =  LEN(WRD$):NL = LW
  144. 10200  IF LW = 0  THEN SPACES = SPACES +1: GOTO 10460
  145. 10210  FOR K = 1 TO  LEN(WRD$)
  146. 10220  IF  MID$ (WRD$,K,1) = "@"  THEN NL = NL -1
  147. 10230  NEXT K
  148. 10240  IF SPACES +NL < = WIDTH  THEN 10280
  149. 10250 VT = VT +2
  150. 10260  HTAB 1
  151. 10270 SPACE = 0
  152. 10280 SPACES = SPACES +NL +1
  153. 10290  VTAB VT
  154. 10300  FOR J = 1 TO LW
  155. 10310 LL = 32
  156. 10320 L$ =  MID$ (WRD$,J,1)
  157. 10330  IF L$ = "@"  OR L$ = "&"  THEN J = J +1:LL = 0 -64 *(L$ = "&"): GOTO 10320
  158. 10340 I =  ASC(L$)
  159. 10350  IF I <65  OR I >90  THEN LL = 0
  160. 10360  PRINT  CHR$(I +LL);
  161. 10370  IF   NOT SOUND  THEN 10450
  162. 10380  IF L$ = " "  THEN 10450
  163. 10390  FOR X = 1 TO 2
  164. 10400 S =  PEEK( -16336)
  165. 10410  NEXT X
  166. 10420  IF L$ < >" "  AND L$ < >"."  AND L$ < >","  THEN 10450
  167. 10430 FINISH = 20 +150 *(L$ = "            .") +75 *(L$ = ",")
  168. 10440  FOR X = 1 TO FINISH: NEXT X
  169. 10450  NEXT J
  170. 10460  PRINT " ";
  171. 10470  NEXT CURRENT
  172. 10480 VT = VT +2
  173. 10490  RETURN 
  174. 15000  REM <CTRL-J><CTRL-J>PRESS ANY KEY<CTRL-J>
  175. 15010  POKE  -16368,0
  176. 15020 CU$ = "!/-\":VT = 24
  177. 15030 A$ = "! PRESS ANY KEY": GOSUB 10000
  178. 15040 VT = VT -2:C = 1:L = 4
  179. 15050  VTAB VT: HTAB 1: PRINT  MID$ (CU$,C,1)
  180. 15060 KEY =  PEEK( -16384): IF KEY <128  THEN C = C +1 -L *(C = L): GOTO 15050
  181. 15070  HGR2 :VT = 1: RETURN